/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeDataGrid.js<br>
 * 日期：2016年8月8日<br>
 * 作者: 刘昭<br>
 * 功能：数据表格 组件<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeDataGrid<br>
 * 类型功能：创建数据表格<br>
 */
Rainier.UI.V2.UICompositeDataGrid = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositeDataGrid",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite  	父组件实例<br>
	 * 参数输入：objProperties		 	组件属性定义<br>	
	 * 异常信息：<br>
	 */
	init : function(objParentComposite,objProperties){
		//使用父类初始化子类对象
		this._super(objParentComposite,objProperties);
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendEventHandler : function(){		
		this.m_aEventList = ['onBeforeLoad',
		                     'onLoad',
		                     'onLoadSuccess',
		                     'onLoadError',
		                     'onBeforeLoad',
		                     'onBeforeOpen',
		                     'onOpen',
		                     'onBeforeClose',
		                     'onClose',
		                     'onBeforeDestroy',
		                     'onDestroy',
		                     'onBeforeCollapse',
		                     'onCollapse',
		                     'onBeforeExpand',
		                     'onExpand',
		                     'onResize',
		                     'onMove',
		                     'onMaximize',
		                     'onRestore',
		                     'onMinimize',
		                     'onClickRow',
		                     'onDblClickRow',
		                     'onClickCell',
		                     'onDblClickCell',
		                     'onBeforeSortColumn',
		                     'onSortColumn',
		                     'onResizeColumn',
		                     'onBeforeSelect',
		                     'onSelect',
		                     'onBeforeUnselect',
		                     'onUnselect',
		                     'onSelectAll',
		                     'onUnselectAll',
		                     'onBeforeCheck',
		                     'onBeforeUncheck',
		                     'onUncheck',
		                     'onCheckAll',
		                     'onUncheckAll',
		                     'onBeforeEdit',
		                     'onBeginEdit',
		                     'onEndEdit',
		                     'onAfterEdit',
		                     'onCancelEdit',
		                     'onHeaderContextMenu',
		                     'onRowContextMenu',
		                     ];
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 参数输入：eleParent : 父组件的节点元素<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("table",this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.datagrid(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod 方法名称
	 * 参数输入：objArgs 方法参数
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	callUiMethod : function(sMethod,objArgs){
		return this.getElement().datagrid(sMethod,objArgs);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.options<br>
	 * 函数功能：返回选项（options）对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	options: function(){
		return this.getElement().datagrid('options');
	},
	
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getPager<br>
	 * 函数功能：返回分页（pager）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getPager: function(){
		return this.getElement().datagrid('getPager');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getPanel<br>
	 * 函数功能：返回面板（panel）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getPanel: function(){
		return this.getElement().datagrid('getPanel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getColumnFields<br>
	 * 函数功能：返回列的字段，如果 frozen 设置为 true，则冻结列的字段被返回。<br>
	 * 参数输入：bFrozen		是否冻结<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getColumnFields: function(bFrozen){
		return this.getElement().datagrid('getColumnFields',bFrozen);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getColumnOption<br>
	 * 函数功能：返回指定列的选项。<br>
	 * 参数输入：sField		指定列<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getColumnOption: function(sField){
		return this.getElement().datagrid('getColumnOption',sField);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.resize<br>
	 * 函数功能：调整尺寸和布局。<br>
	 * 参数输入：param		尺寸<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resize: function(param){
		return this.getElement().datagrid('resize',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.load<br>
	 * 函数功能：加载并显示第一页的行，如果指定 'param' 参数，它将替换 queryParams 属性。
	 * 			通常情况下，通过传递一些从参数进行查询，该方法被调用来从服务器加载新数据。<br>
	 * 参数输入：param		
	 * 			{
	 * 				code: '01',
	 * 				name: 'name01'
	 * 			}<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	load: function(param){
		return this.getElement().datagrid('load',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.reload<br>
	 * 函数功能：重新加载行，就像 load 方法一样，但是保持在当前页。<br>
	 * 参数输入：param		同上<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	reload: function(param){
		return this.getElement().datagrid('reload',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.reloadFooter<br>
	 * 函数功能：重新加载底部的行。<br>
	 * 参数输入：footer
	 * 			[
	 * 				{name: 'name1', salary: 60000},
	 * 				{name: 'name2', salary: 65000}
	 * 			]<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */ 
	reloadFooter: function(footer){
		return this.getElement().datagrid('reloadFooter',footer);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.loading<br>
	 * 函数功能：显示正在加载状态。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	loading: function(){
		return this.getElement().datagrid('loading');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.loaded<br>
	 * 函数功能：隐藏正在加载状态。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	loaded: function(footer){
		return this.getElement().datagrid('loaded');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.fitColumns<br>
	 * 函数功能：使列自动展开/折叠以适应数据网格（datagrid）的宽度。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	fitColumns: function(){
		return this.getElement().datagrid('fitColumns');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.fixColumnSize<br>
	 * 函数功能：固定列的尺寸。如果 'field' 参数未设置，所有的列的尺寸将是固定的。<br>
	 * 参数输入：field	字段名<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	fixColumnSize: function(field){
		return this.getElement().datagrid('fixColumnSize',field);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.fixRowHeight<br>
	 * 函数功能：固定指定行的高度。如果 'index' 参数未设置，所有的行的高度将是固定的。<br>
	 * 参数输入：index	行序号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	fixRowHeight: function(index){
		return this.getElement().datagrid('fixRowHeight',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.freezeRow<br>
	 * 函数功能：冻结指定的行，以便数据网格（datagrid）向下滚动时这些冻结行总是被显示在顶部。<br>
	 * 参数输入：index	行序号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	freezeRow: function(index){
		return this.getElement().datagrid('freezeRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.autoSizeColumn<br>
	 * 函数功能：调整列的宽度以适应内容。<br>
	 * 参数输入：field	字段名<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	autoSizeColumn: function(field){
		return this.getElement().datagrid('autoSizeColumn',field);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.loadData<br>
	 * 函数功能：加载本地数据，旧的行会被移除。<br>
	 * 参数输入：data	本地数据<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	loadData: function(data){
		return this.getElement().datagrid('loadData',data);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getData<br>
	 * 函数功能：返回加载的数据。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getData: function(){
		return this.getElement().datagrid('getData');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getRows<br>
	 * 函数功能：返回当前页的行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getRows: function(){
		return this.getElement().datagrid('getRows');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getFooterRows<br>
	 * 函数功能：返回底部的行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getFooterRows: function(){
		return this.getElement().datagrid('getFooterRows');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getRowIndex<br>
	 * 函数功能：返回指定行的索引，row 参数可以是一个行记录或者一个 id 字段的值。<br>
	 * 参数输入：row		行记录或id 字段的值。<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getRowIndex: function(row){
		return this.getElement().datagrid('getRowIndex',row);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getChecked<br>
	 * 函数功能：返回复选框选中的所有行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getChecked: function(){
		return this.getElement().datagrid('getChecked');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getSelected<br>
	 * 函数功能：返回第一个选中的行或者 null。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getSelected: function(){
		return this.getElement().datagrid('getSelected');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getSelections<br>
	 * 函数功能：返回所有选中的行，当没有选中的记录时，将返回空数组。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getSelections: function(){
		return this.getElement().datagrid('getSelections');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.clearSelections<br>
	 * 函数功能：清除所有的选择。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	clearSelections: function(){
		return this.getElement().datagrid('clearSelections');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.clearChecked<br>
	 * 函数功能：清除所有勾选的行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	clearChecked: function(){
		return this.getElement().datagrid('clearChecked');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.scrollTo<br>
	 * 函数功能：滚动到指定行。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	scrollTo: function(index){
		return this.getElement().datagrid('scrollTo',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.gotoPage<br>
	 * 函数功能：转到指定页面。<br>
	 * 参数输入：param		页面号或
	 * 			{
	 * 				page: 3,
	 * 				callback: function(page){
	 * 					console.log(page)
	 * 			}<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	gotoPage: function(param){
		return this.getElement().datagrid('gotoPage',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.highlightRow<br>
	 * 函数功能：高亮显示一行。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	highlightRow: function(index){
		return this.getElement().datagrid('highlightRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.selectAll<br>
	 * 函数功能：选中当前页所有的行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	selectAll: function(){
		return this.getElement().datagrid('selectAll');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.unselectAll<br>
	 * 函数功能：取消选中当前页所有的行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	unselectAll: function(){
		return this.getElement().datagrid('unselectAll');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.selectRow<br>
	 * 函数功能：选中一行，行索引从 0 开始。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	selectRow: function(index){
		return this.getElement().datagrid('selectRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.selectRecord<br>
	 * 函数功能：通过传递 id 的值做参数选中一行。<br>
	 * 参数输入：idValue		id值<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	selectRecord: function(idValue){
		return this.getElement().datagrid('selectRecord',idValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.unselectRow<br>
	 * 函数功能：取消选中一行。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	unselectRow: function(index){
		return this.getElement().datagrid('unselectRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.checkAll<br>
	 * 函数功能：勾选当前页所有的行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	checkAll: function(){
		return this.getElement().datagrid('checkAll');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.uncheckAll<br>
	 * 函数功能：取消勾选当前页所有的行。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	uncheckAll: function(){
		return this.getElement().datagrid('uncheckAll');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.checkRow<br>
	 * 函数功能：勾选一行，行索引从 0 开始。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	checkRow: function(index){
		return this.getElement().datagrid('checkRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.uncheckRow<br>
	 * 函数功能：取消勾选一行，行索引从 0 开始。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	uncheckRow: function(index){
		return this.getElement().datagrid('uncheckRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.beginEdit<br>
	 * 函数功能：开始对一行进行编辑。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	beginEdit: function(index){
		return this.getElement().datagrid('beginEdit',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.endEdit<br>
	 * 函数功能：结束对一行进行编辑。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	endEdit: function(index){
		return this.getElement().datagrid('endEdit',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.cancelEdit<br>
	 * 函数功能：取消对一行进行编辑。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	cancelEdit: function(index){
		return this.getElement().datagrid('cancelEdit',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getEditors<br>
	 * 函数功能：获取指定行的编辑器。每个编辑器有下列属性：
	 * 				actions：编辑器能做的动作，与编辑器定义相同。
	 * 				target：目标编辑器的 jQuery 对象。
	 * 				field：字段名。
	 * 				type：编辑器的类型，比如：'text'、'combobox'、'datebox'，等等。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getEditors: function(index){
		return this.getElement().datagrid('getEditors',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getEditor<br>
	 * 函数功能：获取指定的编辑器。<br>
	 * 参数输入：options 参数包含两个属性：
	 * 					index：行的索引。
	 * 					field：字段名。<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getEditor: function(options){
		return this.getElement().datagrid('getEditor',options);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.refreshRow<br>
	 * 函数功能：刷新一行。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	refreshRow: function(index){
		return this.getElement().datagrid('refreshRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.validateRow<br>
	 * 函数功能：验证指定的行，有效时返回 true。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	validateRow: function(index){
		return this.getElement().datagrid('validateRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.updateRow<br>
	 * 函数功能：更新指定的行。<br>
	 * 参数输入：param 参数包括下列属性：
	 * 					index：要更新的行的索引。
	 * 					row：新的行数据。<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	updateRow: function(param){
		return this.getElement().datagrid('updateRow',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.appendRow<br>
	 * 函数功能：追加一个新行。新的行将被添加在最后的位置：<br>
	 * 参数输入：row		
	 * 			{
	 * 				name: 'new name',
	 * 				age: 30,
	 * 				note: 'some messages'
	 * 			}<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	appendRow: function(row){
		return this.getElement().datagrid('appendRow',row);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.insertRow<br>
	 * 函数功能：插入一个新行。 <br>
	 * 参数输入：param 	参数包括下列属性：
	 * 					index：插入进去的行的索引，如果没有定义，就追加该新行。
	 * 					row：行的数据。<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	insertRow: function(param){
		return this.getElement().datagrid('insertRow',param);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.deleteRow<br>
	 * 函数功能：删除一行。<br>
	 * 参数输入：index		行号<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	deleteRow: function(index){
		return this.getElement().datagrid('deleteRow',index);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.getChanges<br>
	 * 函数功能：获取最后一次提交以来更改的行，当 type 参数没有分配时，返回所有改变的行。<br>
	 * 参数输入：type 参数表示更改的行的类型，可能的值是：inserted、deleted、updated，等等。<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getChanges: function(type){
		return this.getElement().datagrid('getChanges',type);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.acceptChanges<br>
	 * 函数功能：提交自从被加载以来或最后一次调用 acceptChanges 以来所有更改的数据。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	acceptChanges: function(){
		return this.getElement().datagrid('acceptChanges');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.rejectChanges<br>
	 * 函数功能：回滚自从创建以来或最后一次调用 acceptChanges 以来所有更改的数据。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	rejectChanges: function(){
		return this.getElement().datagrid('rejectChanges');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.mergeCells<br>
	 * 函数功能：把一些单元格合并为一个单元格。<br>
	 * 参数输入：options 参数包括下列特性：
	 * 					index：列的索引。
	 * 					field：字段名。
	 * 					rowspan：合并跨越的行数。
	 * 					colspan：合并跨越的列数。<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	mergeCells: function(options){
		return this.getElement().datagrid('mergeCells',options);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.showColumn<br>
	 * 函数功能：显示指定的列。<br>
	 * 参数输入：field	字段名<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	showColumn: function(field){
		return this.getElement().datagrid('showColumn',field);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.hideColumn<br>
	 * 函数功能：隐藏指定的列。<br>
	 * 参数输入：field	字段名<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	hideColumn: function(field){
		return this.getElement().datagrid('hideColumn',field);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDataGrid.sort<br>
	 * 函数功能：对单元格进行排序<br>
	 * 参数输入：三种参数 如下：
	 * 			// sort on a column
	 * 			$('#dg').datagrid('sort', 'itemid');
	 * 			// sort on a column with specified order
	 * 			$('#dg').datagrid('sort', {
	 * 				sortName: 'productid',
	 * 				sortOrder: 'desc'
	 * 			});
	 * 			// sort on multiple columns
	 * 			$('#dg').datagrid('sort', {
	 * 				sortName: 'productid,listprice',
	 * 				sortOrder: 'desc,asc'
	 * 			});<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	sort: function(param){
		return this.getElement().datagrid('sort',param);
	},
});